<template></template>

<script setup>
import { ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import { ElLoading } from 'element-plus'
import { request } from '@/utils/request'
import { setToken } from '@/utils/auth'
import { ElMessage } from 'element-plus'

const router = useRouter()
const loading = ref(null)
const openFullScreen2 = () => {
  loading.value = ElLoading.service({
    lock: true,
    text: '系统权限认证中，请稍后...',
    background: '#7171c6'
  })
}
// const getQueryParams = (url) => {
//   const params = {}
//   const parser = document.createElement('a')
//   parser.href = url

//   const query = parser.search.substring(1) // 去掉 '?'
//   console.log(query)
//   const vars = query.split('&')

//   vars.forEach(function (v) {
//     const pair = v.split('=')
//     // 使用 decodeURIComponent 解码
//     params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')
//   })

//   return params
// }
const getQueryParams = (url) => {
  const params = {}
  const parser = document.createElement('a')
  parser.href = url

  // 获取哈希部分，以 "#" 分割，取第二部分
  const hash = parser.hash.split('?')[1] // hash是#后面的部分，取?后面的部分
  console.log(hash) // 这里会显示 "token=ddd"

  // 如果哈希部分存在
  if (hash) {
    const vars = hash.split('&')

    vars.forEach(function (v) {
      const pair = v.split('=')
      // 使用 decodeURIComponent 解码
      params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '')
    })
  }

  return params
}
const timeOut = ref(null)
onMounted(() => {
  openFullScreen2()
   timeOut.value = setTimeout(() => {
    request({
      method: 'get',
      url: '/auth/verification',
      params: {
        // token: 'e70a6d802f3b4fdba68936821642256f'
        // token: '8e114ac4ea0641c591dea899432731ac'
        token: '84a29e6bfa114c099d608f7adfd3f1c9'
      }
    })
      .then((res) => {
        if (res.code === 200 && res.data.token) {
          // res.data.shen = '湖南省'
          // res.data.shi = '常德市'
          // res.data.xian = '安乡县'
          // setToken('token', res.data.token)
          sessionStorage.setItem('token', res.data.token)
          // setToken('xzq', `sheng=${res.data.shen}&shi=${res.data.shi}&xian=${res.data.xian}`)
          sessionStorage.setItem(
            'xzq',
            `sheng=${res.data.shen}&shi=${res.data.shi}&xian=${res.data.xian}`
          )
          loading.value.close()
          router.push({ path: '/openlayers' })
        } else {
          ElMessage.error('用户权限验证失败')
        }
      })
      .catch((e) => {
        ElMessage.error('用户权限验证失败')
      })
  }, 1000) 
  // 监听来自父窗口的消息
  window.addEventListener('message', function (event) {
    // 这里可以进行来源验证
    const data = event.data
    console.log(data, '接收打印消息') // 打印接收到的消息
    // clearTimeout(timeOut.value)
    if (data.type && data.type === 'token') {
      request({
        method: 'get',
        url: '/auth/verification',
        params: {
          token: data.value
        }
      })
        .then((res) => {
          if (res.code === 200 && res.data.token) {
            // res.data.shen = '湖南省'
            // res.data.shi = '常德市'
            // res.data.xian = '安乡县'
            // setToken('token', res.data.token)
            sessionStorage.setItem('token', res.data.token)
            // setToken('xzq', `sheng=${res.data.shen}&shi=${res.data.shi}&xian=${res.data.xian}`)
            sessionStorage.setItem(
              'xzq',
              `sheng=${res.data.shen}&shi=${res.data.shi}&xian=${res.data.xian}`
            )
            loading.value.close()
            router.push({ path: '/openlayers' })
          } else {
            ElMessage.error('用户权限验证失败')
          }
        })
        .catch((e) => {
          ElMessage.error('用户权限验证失败')
        })
    } else {
      ElMessage.error('用户权限验证失败')
    }
  })
  return
  const paramValue = getQueryParams(window.location.href)
  if (paramValue.token) {
    request({
      method: 'get',
      url: '/auth/verification',
      params: {
        token: paramValue.token
      }
    })
      .then((res) => {
        if (res.code === 200 && res.data.token) {
          setToken('token', res.data.token)
          setToken(
            'xzq',
            `sheng=${res.data.shen}&shi=${res.data.shi}&xian=${res.data.xian}`
          )
          loading.value.close()
          router.push({ path: '/openlayers' })
        } else {
          ElMessage.error('用户权限验证失败')
        }
      })
      .catch((e) => {
        ElMessage.error('用户权限验证失败')
      })
  } else {
    ElMessage.error('用户权限验证失败')
  }
})
</script>

<style lang="scss" scoped></style>
